package com.i360day.redis.util;

import java.io.UnsupportedEncodingException;

/**
 * <p> @description:     <p>
 * <p>
 * <p> @uthor: 胡.青牛   <p>
 * <p>
 * <p> @date: 2019/5/10 0010  15:58
 **/
public class StringUtils {


    /**
     * <p> @Description: 两个值是否相等   <p>
     *
     * <p> @Author: 胡.青牛   <p>
     *
     * <p> @Date:   2019/3/22 0022 11:53   <p>
     *
     * <p> @param desc     <p>
     * <p> @param src     <p>
     *
     * <p> @return: boolean     <p>
     **/
    public static boolean isEquals(Object desc, Object src) {
        if (isEmpty(desc)) return false;
        if (isEmpty(src)) return false;
        return desc.equals(src);
    }

    /**
     * <p> @Description: 判断对象是否为空   <p>
     *
     * <p> @Author: 胡.青牛   <p>
     *
     * <p> @Date:   2019/3/22 0022 11:53   <p>
     *
     * <p> @param obj     <p>
     *
     * <p> @return: boolean     <p>
     **/
    public static boolean isEmpty(Object obj) {
        if (obj == null) return true;
        //字符串为空判断
        if (obj instanceof String) {
            if (obj.toString().equals("null")) return true;

            return obj.toString().trim().length() == 0;
        }
        return false;
    }

    /**
     * <p> @Description: 判断对象是否为空   <p>
     *
     * <p> @Author: 胡.青牛   <p>
     *
     * <p> @Date:   2019/3/22 0022 11:53   <p>
     *
     * <p> @param obj     <p>
     *
     * <p> @return: boolean     <p>
     **/
    public static boolean isNotEmpty(Object obj) {
        if (obj == null) return false;
        //字符串为空判断
        if (obj instanceof String) {
            if (obj.toString().equals("null")) return false;

            return obj.toString().trim().length() != 0;
        }
        return true;
    }

    /**
     * @param content 需要加密串
     * @param charset 字符集
     * @return 加密后的字节数组
     */
    public static byte[] getContentBytes(String content, String charset) {
        if (isEmpty(charset)) {
            return content.getBytes();
        }
        try {
            return content.getBytes(charset);
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException("转码过程中出现错误,指定的编码集不对,您目前指定的编码集是:" + charset);
        }
    }

    /**
     * <p> @Author liju.z <p>
     *
     * <p> @Description 判断包路径是否为空 <p>
     *
     * <p> @Date  22:48 <p>
     *
     * <p> @Param [obj] <p>
     *
     * <p> @return [obj] <p>
     **/
    public static boolean isPackage(Object obj) {
        if (obj == null) {
            return true;
        } else if (!(obj instanceof String[])) {
            return true;
        } else if (((String[]) obj).length == 0) {
            return true;
        }
        return false;
    }

    /**
     * <p> @Author liju.z <p>
     *
     * <p> @Description 判断数组是否为空 <p>
     *
     * <p> @Date  9:14 <p>
     *
     * <p> @Param [obj] <p>
     *
     * <p> @return [obj] <p>
     **/
    public static boolean isArrayEmpty(Object... obj) {
        if (obj == null) {
            return true;
        } else if (obj.length == 0) {
            return true;
        }
        return false;
    }
}
